package com.awangyh.jdk8.json;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.List;

public class JsonUtil {
	public static final String DATE_FORMAT="yyyyMMdd HH:mm:ss";
	
	private static Gson genericGson;


	static {
		genericGson=new GsonBuilder().setDateFormat(DATE_FORMAT).setPrettyPrinting().create();
	}
	/**
	 * 向web接口输出转换json。web接口注意2点：
	 * 
	 * 1. 注解为<code>DbOnly</code>的字段不输出到web，如用户的password字段；
	 * 2. 日期以格式"yyyyMMdd-HH:mm:ss"输出
	 * 
	 * @return
	 */
	public static Gson getGson() {
		return genericGson;
	}

	
	public static <T> List<T> adapt( String json ) {
		if( json==null ) {
			return null;
		}
		
		Gson gson=getGson();
		Type type=new TypeToken<List<T>>(){}.getType();
		
		return gson.fromJson( json, type );
	}
}
